
package com.one.odf.model;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * Competition element
 * 
 * <p>Java class for competitionType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="competitionType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;choice&gt;
 *         &lt;sequence&gt;
 *           &lt;element name="ExtendedInfos" type="{}extendedInfosType" minOccurs="0"/&gt;
 *           &lt;element name="Session" type="{}SessionType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *           &lt;element name="Clock" type="{}clockType" minOccurs="0"/&gt;
 *           &lt;element name="StatsItems" type="{}resultStatsType" minOccurs="0"/&gt;
 *           &lt;element name="Officials" type="{}officialsType" minOccurs="0"/&gt;
 *           &lt;element name="Periods" type="{}periodsType" minOccurs="0"/&gt;
 *           &lt;element name="Actions" type="{}unitActionsType" minOccurs="0"/&gt;
 *           &lt;element name="ImageData" type="{}pictureType" minOccurs="0"/&gt;
 *           &lt;element name="Categories" type="{}ICMSCategoryType" minOccurs="0"/&gt;
 *           &lt;element name="RightsInfo" type="{}RightsInfoType" minOccurs="0"/&gt;
 *           &lt;element name="ContentInfo" type="{}ContentInfoType" minOccurs="0"/&gt;
 *           &lt;choice&gt;
 *             &lt;element name="Result" type="{}resultType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Unit" type="{}scheduleUnitType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="PDFData" type="{}messageType"/&gt;
 *             &lt;element name="Bracket" type="{}bracketType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Stats" type="{}messageStatsType"/&gt;
 *             &lt;element name="Medal" type="{}medalType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Discipline" type="{}medallistsDisciplineType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Communication" type="{}officialCommunicationType" minOccurs="0"/&gt;
 *             &lt;element name="Participant" type="{}participantType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Team" type="{}teamType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Horse" type="{}horseType" maxOccurs="unbounded"/&gt;
 *             &lt;element name="Config" type="{}confType" minOccurs="0"/&gt;
 *             &lt;element name="Configs" type="{}configsType" minOccurs="0"/&gt;
 *             &lt;element name="Competitor" type="{}competitorGPSDataType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *             &lt;element name="Weather" type="{}weatherType" minOccurs="0"/&gt;
 *             &lt;element name="Record" type="{}brokenRecordType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *             &lt;element name="Image" type="{}imageType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *             &lt;element name="PhotoFinish" type="{}photoFinishType" minOccurs="0"/&gt;
 *             &lt;element name="DirectLink" type="{}notificationType" minOccurs="0"/&gt;
 *             &lt;element name="Picture" type="{}pictureType" minOccurs="0"/&gt;
 *             &lt;element name="MedalStandings" type="{}medalStandingsType" minOccurs="0"/&gt;
 *             &lt;element name="Document" type="{}ICMSDocumentType" minOccurs="0"/&gt;
 *             &lt;element name="ParticipantBiography" type="{}participantBIOType" minOccurs="0"/&gt;
 *             &lt;element name="TeamBiography" type="{}teamBIOType" minOccurs="0"/&gt;
 *             &lt;element name="HorseBiography" type="{}horseBIOType" minOccurs="0"/&gt;
 *             &lt;element name="Organisation" type="{}NOCBIOType" minOccurs="0"/&gt;
 *             &lt;element name="CodeSet" type="{}CodeSetType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *             &lt;element name="Place" type="{}WeatherPlaceType" minOccurs="0"/&gt;
 *             &lt;element name="Venue" type="{}WeatherConditionsVenueType" minOccurs="0"/&gt;
 *             &lt;element name="Rankings" type="{}rankingsType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *             &lt;element name="Presentation" type="{}presentationType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *             &lt;element name="Ceremony" type="{}flagBearerType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *           &lt;/choice&gt;
 *         &lt;/sequence&gt;
 *       &lt;/choice&gt;
 *       &lt;attribute name="Gen" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="Sport" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="Codes" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "competitionType", propOrder = {
    "extendedInfos",
    "session",
    "clock",
    "statsItems",
    "officials",
    "periods",
    "actions",
    "imageData",
    "categories",
    "rightsInfo",
    "contentInfo",
    "result",
    "unit",
    "pdfData",
    "bracket",
    "stats",
    "medal",
    "discipline",
    "communication",
    "participant",
    "team",
    "horse",
    "config",
    "configs",
    "competitor",
    "weather",
    "record",
    "image",
    "photoFinish",
    "directLink",
    "picture",
    "medalStandings",
    "document",
    "participantBiography",
    "teamBiography",
    "horseBiography",
    "organisation",
    "codeSet",
    "place",
    "venue",
    "rankings",
    "presentation",
    "ceremony"
})
public class CompetitionType {

    @XmlElement(name = "ExtendedInfos")
    protected ExtendedInfosType extendedInfos;
    @XmlElement(name = "Session")
    protected List<SessionType> session;
    @XmlElement(name = "Clock")
    protected ClockType clock;
    @XmlElement(name = "StatsItems")
    protected ResultStatsType statsItems;
    @XmlElement(name = "Officials")
    protected OfficialsType officials;
    @XmlElement(name = "Periods")
    protected PeriodsType periods;
    @XmlElement(name = "Actions")
    protected UnitActionsType actions;
    @XmlElement(name = "ImageData")
    protected PictureType imageData;
    @XmlElement(name = "Categories")
    protected ICMSCategoryType categories;
    @XmlElement(name = "RightsInfo")
    protected RightsInfoType rightsInfo;
    @XmlElement(name = "ContentInfo")
    protected ContentInfoType contentInfo;
    @XmlElement(name = "Result")
    protected List<ResultType> result;
    @XmlElement(name = "Unit")
    protected List<ScheduleUnitType> unit;
    @XmlElement(name = "PDFData")
    protected String pdfData;
    @XmlElement(name = "Bracket")
    protected List<BracketType> bracket;
    @XmlElement(name = "Stats")
    protected MessageStatsType stats;
    @XmlElement(name = "Medal")
    protected List<MedalType> medal;
    @XmlElement(name = "Discipline")
    protected List<MedallistsDisciplineType> discipline;
    @XmlElement(name = "Communication")
    protected OfficialCommunicationType communication;
    @XmlElement(name = "Participant")
    protected List<ParticipantType> participant;
    @XmlElement(name = "Team")
    protected List<TeamType> team;
    @XmlElement(name = "Horse")
    protected List<HorseType> horse;
    @XmlElement(name = "Config")
    protected ConfType config;
    @XmlElement(name = "Configs")
    protected ConfigsType configs;
    @XmlElement(name = "Competitor")
    protected List<CompetitorGPSDataType> competitor;
    @XmlElement(name = "Weather")
    protected WeatherType weather;
    @XmlElement(name = "Record")
    protected List<BrokenRecordType> record;
    @XmlElement(name = "Image")
    protected List<ImageType> image;
    @XmlElement(name = "PhotoFinish")
    protected PhotoFinishType photoFinish;
    @XmlElement(name = "DirectLink")
    protected NotificationType directLink;
    @XmlElement(name = "Picture")
    protected PictureType picture;
    @XmlElement(name = "MedalStandings")
    protected MedalStandingsType medalStandings;
    @XmlElement(name = "Document")
    protected ICMSDocumentType document;
    @XmlElement(name = "ParticipantBiography")
    protected ParticipantBIOType participantBiography;
    @XmlElement(name = "TeamBiography")
    protected TeamBIOType teamBiography;
    @XmlElement(name = "HorseBiography")
    protected HorseBIOType horseBiography;
    @XmlElement(name = "Organisation")
    protected NOCBIOType organisation;
    @XmlElement(name = "CodeSet")
    protected List<CodeSetType> codeSet;
    @XmlElement(name = "Place")
    protected WeatherPlaceType place;
    @XmlElement(name = "Venue")
    protected WeatherConditionsVenueType venue;
    @XmlElement(name = "Rankings")
    protected List<RankingsType> rankings;
    @XmlElement(name = "Presentation")
    protected List<PresentationType> presentation;
    @XmlElement(name = "Ceremony")
    protected List<FlagBearerType> ceremony;
    @XmlAttribute(name = "Gen")
    protected String gen;
    @XmlAttribute(name = "Sport")
    protected String sport;
    @XmlAttribute(name = "Codes")
    protected String codes;

    /**
     * Gets the value of the extendedInfos property.
     * 
     * @return
     *     possible object is
     *     {@link ExtendedInfosType }
     *     
     */
    public ExtendedInfosType getExtendedInfos() {
        return extendedInfos;
    }

    /**
     * Sets the value of the extendedInfos property.
     * 
     * @param value
     *     allowed object is
     *     {@link ExtendedInfosType }
     *     
     */
    public void setExtendedInfos(ExtendedInfosType value) {
        this.extendedInfos = value;
    }

    /**
     * Gets the value of the session property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the session property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getSession().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link SessionType }
     * 
     * 
     */
    public List<SessionType> getSession() {
        if (session == null) {
            session = new ArrayList<SessionType>();
        }
        return this.session;
    }

    /**
     * Gets the value of the clock property.
     * 
     * @return
     *     possible object is
     *     {@link ClockType }
     *     
     */
    public ClockType getClock() {
        return clock;
    }

    /**
     * Sets the value of the clock property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClockType }
     *     
     */
    public void setClock(ClockType value) {
        this.clock = value;
    }

    /**
     * Gets the value of the statsItems property.
     * 
     * @return
     *     possible object is
     *     {@link ResultStatsType }
     *     
     */
    public ResultStatsType getStatsItems() {
        return statsItems;
    }

    /**
     * Sets the value of the statsItems property.
     * 
     * @param value
     *     allowed object is
     *     {@link ResultStatsType }
     *     
     */
    public void setStatsItems(ResultStatsType value) {
        this.statsItems = value;
    }

    /**
     * Gets the value of the officials property.
     * 
     * @return
     *     possible object is
     *     {@link OfficialsType }
     *     
     */
    public OfficialsType getOfficials() {
        return officials;
    }

    /**
     * Sets the value of the officials property.
     * 
     * @param value
     *     allowed object is
     *     {@link OfficialsType }
     *     
     */
    public void setOfficials(OfficialsType value) {
        this.officials = value;
    }

    /**
     * Gets the value of the periods property.
     * 
     * @return
     *     possible object is
     *     {@link PeriodsType }
     *     
     */
    public PeriodsType getPeriods() {
        return periods;
    }

    /**
     * Sets the value of the periods property.
     * 
     * @param value
     *     allowed object is
     *     {@link PeriodsType }
     *     
     */
    public void setPeriods(PeriodsType value) {
        this.periods = value;
    }

    /**
     * Gets the value of the actions property.
     * 
     * @return
     *     possible object is
     *     {@link UnitActionsType }
     *     
     */
    public UnitActionsType getActions() {
        return actions;
    }

    /**
     * Sets the value of the actions property.
     * 
     * @param value
     *     allowed object is
     *     {@link UnitActionsType }
     *     
     */
    public void setActions(UnitActionsType value) {
        this.actions = value;
    }

    /**
     * Gets the value of the imageData property.
     * 
     * @return
     *     possible object is
     *     {@link PictureType }
     *     
     */
    public PictureType getImageData() {
        return imageData;
    }

    /**
     * Sets the value of the imageData property.
     * 
     * @param value
     *     allowed object is
     *     {@link PictureType }
     *     
     */
    public void setImageData(PictureType value) {
        this.imageData = value;
    }

    /**
     * Gets the value of the categories property.
     * 
     * @return
     *     possible object is
     *     {@link ICMSCategoryType }
     *     
     */
    public ICMSCategoryType getCategories() {
        return categories;
    }

    /**
     * Sets the value of the categories property.
     * 
     * @param value
     *     allowed object is
     *     {@link ICMSCategoryType }
     *     
     */
    public void setCategories(ICMSCategoryType value) {
        this.categories = value;
    }

    /**
     * Gets the value of the rightsInfo property.
     * 
     * @return
     *     possible object is
     *     {@link RightsInfoType }
     *     
     */
    public RightsInfoType getRightsInfo() {
        return rightsInfo;
    }

    /**
     * Sets the value of the rightsInfo property.
     * 
     * @param value
     *     allowed object is
     *     {@link RightsInfoType }
     *     
     */
    public void setRightsInfo(RightsInfoType value) {
        this.rightsInfo = value;
    }

    /**
     * Gets the value of the contentInfo property.
     * 
     * @return
     *     possible object is
     *     {@link ContentInfoType }
     *     
     */
    public ContentInfoType getContentInfo() {
        return contentInfo;
    }

    /**
     * Sets the value of the contentInfo property.
     * 
     * @param value
     *     allowed object is
     *     {@link ContentInfoType }
     *     
     */
    public void setContentInfo(ContentInfoType value) {
        this.contentInfo = value;
    }

    /**
     * Gets the value of the result property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the result property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getResult().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ResultType }
     * 
     * 
     */
    public List<ResultType> getResult() {
        if (result == null) {
            result = new ArrayList<ResultType>();
        }
        return this.result;
    }

    /**
     * Gets the value of the unit property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the unit property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getUnit().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ScheduleUnitType }
     * 
     * 
     */
    public List<ScheduleUnitType> getUnit() {
        if (unit == null) {
            unit = new ArrayList<ScheduleUnitType>();
        }
        return this.unit;
    }

    /**
     * Gets the value of the pdfData property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPDFData() {
        return pdfData;
    }

    /**
     * Sets the value of the pdfData property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPDFData(String value) {
        this.pdfData = value;
    }

    /**
     * Gets the value of the bracket property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the bracket property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getBracket().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link BracketType }
     * 
     * 
     */
    public List<BracketType> getBracket() {
        if (bracket == null) {
            bracket = new ArrayList<BracketType>();
        }
        return this.bracket;
    }

    /**
     * Gets the value of the stats property.
     * 
     * @return
     *     possible object is
     *     {@link MessageStatsType }
     *     
     */
    public MessageStatsType getStats() {
        return stats;
    }

    /**
     * Sets the value of the stats property.
     * 
     * @param value
     *     allowed object is
     *     {@link MessageStatsType }
     *     
     */
    public void setStats(MessageStatsType value) {
        this.stats = value;
    }

    /**
     * Gets the value of the medal property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the medal property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getMedal().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link MedalType }
     * 
     * 
     */
    public List<MedalType> getMedal() {
        if (medal == null) {
            medal = new ArrayList<MedalType>();
        }
        return this.medal;
    }

    /**
     * Gets the value of the discipline property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the discipline property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getDiscipline().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link MedallistsDisciplineType }
     * 
     * 
     */
    public List<MedallistsDisciplineType> getDiscipline() {
        if (discipline == null) {
            discipline = new ArrayList<MedallistsDisciplineType>();
        }
        return this.discipline;
    }

    /**
     * Gets the value of the communication property.
     * 
     * @return
     *     possible object is
     *     {@link OfficialCommunicationType }
     *     
     */
    public OfficialCommunicationType getCommunication() {
        return communication;
    }

    /**
     * Sets the value of the communication property.
     * 
     * @param value
     *     allowed object is
     *     {@link OfficialCommunicationType }
     *     
     */
    public void setCommunication(OfficialCommunicationType value) {
        this.communication = value;
    }

    /**
     * Gets the value of the participant property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the participant property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getParticipant().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ParticipantType }
     * 
     * 
     */
    public List<ParticipantType> getParticipant() {
        if (participant == null) {
            participant = new ArrayList<ParticipantType>();
        }
        return this.participant;
    }

    /**
     * Gets the value of the team property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the team property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTeam().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TeamType }
     * 
     * 
     */
    public List<TeamType> getTeam() {
        if (team == null) {
            team = new ArrayList<TeamType>();
        }
        return this.team;
    }

    /**
     * Gets the value of the horse property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the horse property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getHorse().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link HorseType }
     * 
     * 
     */
    public List<HorseType> getHorse() {
        if (horse == null) {
            horse = new ArrayList<HorseType>();
        }
        return this.horse;
    }

    /**
     * Gets the value of the config property.
     * 
     * @return
     *     possible object is
     *     {@link ConfType }
     *     
     */
    public ConfType getConfig() {
        return config;
    }

    /**
     * Sets the value of the config property.
     * 
     * @param value
     *     allowed object is
     *     {@link ConfType }
     *     
     */
    public void setConfig(ConfType value) {
        this.config = value;
    }

    /**
     * Gets the value of the configs property.
     * 
     * @return
     *     possible object is
     *     {@link ConfigsType }
     *     
     */
    public ConfigsType getConfigs() {
        return configs;
    }

    /**
     * Sets the value of the configs property.
     * 
     * @param value
     *     allowed object is
     *     {@link ConfigsType }
     *     
     */
    public void setConfigs(ConfigsType value) {
        this.configs = value;
    }

    /**
     * Gets the value of the competitor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the competitor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCompetitor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CompetitorGPSDataType }
     * 
     * 
     */
    public List<CompetitorGPSDataType> getCompetitor() {
        if (competitor == null) {
            competitor = new ArrayList<CompetitorGPSDataType>();
        }
        return this.competitor;
    }

    /**
     * Gets the value of the weather property.
     * 
     * @return
     *     possible object is
     *     {@link WeatherType }
     *     
     */
    public WeatherType getWeather() {
        return weather;
    }

    /**
     * Sets the value of the weather property.
     * 
     * @param value
     *     allowed object is
     *     {@link WeatherType }
     *     
     */
    public void setWeather(WeatherType value) {
        this.weather = value;
    }

    /**
     * Gets the value of the record property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the record property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getRecord().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link BrokenRecordType }
     * 
     * 
     */
    public List<BrokenRecordType> getRecord() {
        if (record == null) {
            record = new ArrayList<BrokenRecordType>();
        }
        return this.record;
    }

    /**
     * Gets the value of the image property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the image property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getImage().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ImageType }
     * 
     * 
     */
    public List<ImageType> getImage() {
        if (image == null) {
            image = new ArrayList<ImageType>();
        }
        return this.image;
    }

    /**
     * Gets the value of the photoFinish property.
     * 
     * @return
     *     possible object is
     *     {@link PhotoFinishType }
     *     
     */
    public PhotoFinishType getPhotoFinish() {
        return photoFinish;
    }

    /**
     * Sets the value of the photoFinish property.
     * 
     * @param value
     *     allowed object is
     *     {@link PhotoFinishType }
     *     
     */
    public void setPhotoFinish(PhotoFinishType value) {
        this.photoFinish = value;
    }

    /**
     * Gets the value of the directLink property.
     * 
     * @return
     *     possible object is
     *     {@link NotificationType }
     *     
     */
    public NotificationType getDirectLink() {
        return directLink;
    }

    /**
     * Sets the value of the directLink property.
     * 
     * @param value
     *     allowed object is
     *     {@link NotificationType }
     *     
     */
    public void setDirectLink(NotificationType value) {
        this.directLink = value;
    }

    /**
     * Gets the value of the picture property.
     * 
     * @return
     *     possible object is
     *     {@link PictureType }
     *     
     */
    public PictureType getPicture() {
        return picture;
    }

    /**
     * Sets the value of the picture property.
     * 
     * @param value
     *     allowed object is
     *     {@link PictureType }
     *     
     */
    public void setPicture(PictureType value) {
        this.picture = value;
    }

    /**
     * Gets the value of the medalStandings property.
     * 
     * @return
     *     possible object is
     *     {@link MedalStandingsType }
     *     
     */
    public MedalStandingsType getMedalStandings() {
        return medalStandings;
    }

    /**
     * Sets the value of the medalStandings property.
     * 
     * @param value
     *     allowed object is
     *     {@link MedalStandingsType }
     *     
     */
    public void setMedalStandings(MedalStandingsType value) {
        this.medalStandings = value;
    }

    /**
     * Gets the value of the document property.
     * 
     * @return
     *     possible object is
     *     {@link ICMSDocumentType }
     *     
     */
    public ICMSDocumentType getDocument() {
        return document;
    }

    /**
     * Sets the value of the document property.
     * 
     * @param value
     *     allowed object is
     *     {@link ICMSDocumentType }
     *     
     */
    public void setDocument(ICMSDocumentType value) {
        this.document = value;
    }

    /**
     * Gets the value of the participantBiography property.
     * 
     * @return
     *     possible object is
     *     {@link ParticipantBIOType }
     *     
     */
    public ParticipantBIOType getParticipantBiography() {
        return participantBiography;
    }

    /**
     * Sets the value of the participantBiography property.
     * 
     * @param value
     *     allowed object is
     *     {@link ParticipantBIOType }
     *     
     */
    public void setParticipantBiography(ParticipantBIOType value) {
        this.participantBiography = value;
    }

    /**
     * Gets the value of the teamBiography property.
     * 
     * @return
     *     possible object is
     *     {@link TeamBIOType }
     *     
     */
    public TeamBIOType getTeamBiography() {
        return teamBiography;
    }

    /**
     * Sets the value of the teamBiography property.
     * 
     * @param value
     *     allowed object is
     *     {@link TeamBIOType }
     *     
     */
    public void setTeamBiography(TeamBIOType value) {
        this.teamBiography = value;
    }

    /**
     * Gets the value of the horseBiography property.
     * 
     * @return
     *     possible object is
     *     {@link HorseBIOType }
     *     
     */
    public HorseBIOType getHorseBiography() {
        return horseBiography;
    }

    /**
     * Sets the value of the horseBiography property.
     * 
     * @param value
     *     allowed object is
     *     {@link HorseBIOType }
     *     
     */
    public void setHorseBiography(HorseBIOType value) {
        this.horseBiography = value;
    }

    /**
     * Gets the value of the organisation property.
     * 
     * @return
     *     possible object is
     *     {@link NOCBIOType }
     *     
     */
    public NOCBIOType getOrganisation() {
        return organisation;
    }

    /**
     * Sets the value of the organisation property.
     * 
     * @param value
     *     allowed object is
     *     {@link NOCBIOType }
     *     
     */
    public void setOrganisation(NOCBIOType value) {
        this.organisation = value;
    }

    /**
     * Gets the value of the codeSet property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the codeSet property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCodeSet().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CodeSetType }
     * 
     * 
     */
    public List<CodeSetType> getCodeSet() {
        if (codeSet == null) {
            codeSet = new ArrayList<CodeSetType>();
        }
        return this.codeSet;
    }

    /**
     * Gets the value of the place property.
     * 
     * @return
     *     possible object is
     *     {@link WeatherPlaceType }
     *     
     */
    public WeatherPlaceType getPlace() {
        return place;
    }

    /**
     * Sets the value of the place property.
     * 
     * @param value
     *     allowed object is
     *     {@link WeatherPlaceType }
     *     
     */
    public void setPlace(WeatherPlaceType value) {
        this.place = value;
    }

    /**
     * Gets the value of the venue property.
     * 
     * @return
     *     possible object is
     *     {@link WeatherConditionsVenueType }
     *     
     */
    public WeatherConditionsVenueType getVenue() {
        return venue;
    }

    /**
     * Sets the value of the venue property.
     * 
     * @param value
     *     allowed object is
     *     {@link WeatherConditionsVenueType }
     *     
     */
    public void setVenue(WeatherConditionsVenueType value) {
        this.venue = value;
    }

    /**
     * Gets the value of the rankings property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the rankings property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getRankings().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link RankingsType }
     * 
     * 
     */
    public List<RankingsType> getRankings() {
        if (rankings == null) {
            rankings = new ArrayList<RankingsType>();
        }
        return this.rankings;
    }

    /**
     * Gets the value of the presentation property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the presentation property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPresentation().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PresentationType }
     * 
     * 
     */
    public List<PresentationType> getPresentation() {
        if (presentation == null) {
            presentation = new ArrayList<PresentationType>();
        }
        return this.presentation;
    }

    /**
     * Gets the value of the ceremony property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the ceremony property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCeremony().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link FlagBearerType }
     * 
     * 
     */
    public List<FlagBearerType> getCeremony() {
        if (ceremony == null) {
            ceremony = new ArrayList<FlagBearerType>();
        }
        return this.ceremony;
    }

    /**
     * Gets the value of the gen property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getGen() {
        return gen;
    }

    /**
     * Sets the value of the gen property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setGen(String value) {
        this.gen = value;
    }

    /**
     * Gets the value of the sport property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSport() {
        return sport;
    }

    /**
     * Sets the value of the sport property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSport(String value) {
        this.sport = value;
    }

    /**
     * Gets the value of the codes property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCodes() {
        return codes;
    }

    /**
     * Sets the value of the codes property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCodes(String value) {
        this.codes = value;
    }

    public void setSession(List<SessionType> session) {
        this.session = session;
    }

    public void setResult(List<ResultType> result) {
        this.result = result;
    }

    public void setUnit(List<ScheduleUnitType> unit) {
        this.unit = unit;
    }

    public String getPdfData() {
        return pdfData;
    }

    public void setPdfData(String pdfData) {
        this.pdfData = pdfData;
    }

    public void setBracket(List<BracketType> bracket) {
        this.bracket = bracket;
    }

    public void setMedal(List<MedalType> medal) {
        this.medal = medal;
    }

    public void setDiscipline(List<MedallistsDisciplineType> discipline) {
        this.discipline = discipline;
    }

    public void setParticipant(List<ParticipantType> participant) {
        this.participant = participant;
    }

    public void setTeam(List<TeamType> team) {
        this.team = team;
    }

    public void setHorse(List<HorseType> horse) {
        this.horse = horse;
    }

    public void setCompetitor(List<CompetitorGPSDataType> competitor) {
        this.competitor = competitor;
    }

    public void setRecord(List<BrokenRecordType> record) {
        this.record = record;
    }

    public void setImage(List<ImageType> image) {
        this.image = image;
    }

    public void setCodeSet(List<CodeSetType> codeSet) {
        this.codeSet = codeSet;
    }

    public void setRankings(List<RankingsType> rankings) {
        this.rankings = rankings;
    }

    public void setPresentation(List<PresentationType> presentation) {
        this.presentation = presentation;
    }

    public void setCeremony(List<FlagBearerType> ceremony) {
        this.ceremony = ceremony;
    }
}
